Ассоциация частных алгоритмов.

 

Разумовский А.И.

Институт проблем управления им. В.А.Трапезникова РАН

117997, Москва, ул. Профсоюзная, 65

 

 

 

Под ассоциацией частных алгоритмов (ЧА) мы будем понимать способность взаимодействующих на основании собственных свойств и процедур программных элементов обеспечивать заданный наперед результат. Выделяя ассоциацию из единого процесса синтеза структур программных систем, как его заключительную часть, представляется возможным, тем самым, придать особое фактологическое значение ассоциативному механизму, которому предназначено завершить цикл создания проекта программной системы (ПС) и зафиксировать результирующее место каждого элемента конечной структуры в перспективе ее жизненного цикла.

Фактору упорядоченного объединения имеющихся элементов обычно придают меньшее значение, в связи с выдвижением на первый план роли декомпозиции, которая формирует окончательный вид элементов (границу действия), а также их характер и порядок взаимодействий.

Однако кажется, что, ограничивая процесс декомпозиции лишь делением исходного множества на элементы без указания их подоплеки в сети, графе и т. д. можно придать этому процессу завершенность, а также позволит сконцентрировать усилия проектирования на тонкостях отдельных этапов, переходов и состояний элементарных структур.

Когда говорят об ассоциации произвольной декомпозиции ПС в первую очередь должно иметь в виду: 1) порядок и характер сочетания подготовленных элементарных модулей в граф, сеть; 2) необходимость выявления условий ассоциации, т.е. при заданном порядке определяется условия совместимости отдельных участков графа ПС, а также условия и степень зависимости элементов друг от друга, включая сюда и функциональную и информационную зависимость.

В первом случае исходным материалом исследования служит тем или иным способом выполненное разбиение ПС на частные алгоритмы (ЧА). Во втором случае задача несколько обратная. Для известного графа ПС необходимо провести его валидацию. Иначе говоря, выявить отдельные участки, где сочлененность (смежность) алгоритмов проявится в виде «внутренне противоречивой» либо « потенциально противоречивой». А также наоборот, – «потенциально расширяемой», т.е. такой, где предоставляется возможность легко провести уточняющие дополнения, либо удаления–замены.

Очевидно, что манипуляция элементами ПС, именуемыми частными или локальными алгоритмами (ЧА), неадекватна подобному же действию в технических системах, когда понятие элемента зачастую идентично (и тем самым ограничено) понятию атома, «неделимого качества».

В случае ПС, манипуляция производится в большинстве случаев, особенно при проектировании, на уровне сущностей - ЧА. Однако каждый из ЧА ПС не является элементарным, следовательно, многие основные или ведущие алгоритмы будут на данном этапе проектирования скрыты, и даже, возможно, вовсе не определены, а только обозначены.

Значит, многие аспекты поведения и сочленения ПС окажутся недоступными для исследователя и проектировщика, в результате отсутствия уточнений деталей функционирования. Поэтому, в задачу ассоциации ПС обязательно должны войти действия по выявлению границ полноты описания системы, где следует также изыскать возможности для иерархического ценностного упорядочивания отдельных элементов – ЧА.

Для примерной иллюстрации возьмем алгоритм функции рисования RENDER, осуществляющей отображение 3D объекта на экране дисплея возможностями DIRECT3DRM. Алгоритмическая цепочка этой функции должна соответствовать схеме (рис.1):

 

Рис.1

 

Сформулируем два основных вопроса, в исследовании которых мы заинтересованы. Во-1), каким образом можно обеспечить одновременное выполнение схемы, изображенной на рисунке 1. Во-2), какие факторы могут оказать решающее действие на результат функции RENDER в рамках данной схемы.

Первый вопрос более глобален, из-за того, что, формулируя задачу ассоциации под произвольно выбранную декомпозицию, можно извлечь на поверхность обсуждения самые разные неожиданные оттенки, в том числе проблему правильности ассоциативных терминологических формулировок и способов описания результатов. Успех исследования будет важен также в смысле создания своеобразных универсумов, - таких элементарных программных единиц, которые, обладая простым и одновременно универсальным интерфейсом, были бы способны к самоорганизации в автоматическом режиме. Иными словами, требуется ответить на вопрос: существует ли для заданной декомпозиции соответствующая ассоциация?

Очевидно, что сама задача ассоциации трансформируется в задачу поиска «подходящих» обоснований декомпозиционной схемы.

Второй вопрос формулирует задачу в терминах, по крайней мере отчасти, интерпретации. Рассмотрим 2 и 3 пункт схемы (рис. 1). Удобно, для примера, представить простейший 3D прямоугольник, который по прошествии 2 пункта отображается на терминале – дисплее. Разобьем его на одинаковые области. Тогда, в смысле пошагового, растрового отображения, будет вызвана функция , которая для каждой области , вызовет преобразование к 2D матрице экрана. Плюс, цвет рисования каждой области должен соответствовать определенной величине. Считая , получим другое выражение функции :

,

где присутствие индекса i подчеркивает, во-первых, множественность элементов, интерпретируемых с помощью , во-вторых, однородность, и даже одинаковость участков .

Рассуждая далее, имеем превращение выражения  при  в  (правильнее, вероятно, было бы записать , однако в связи с тем, что главным интересом исследования здесь выступает, прежде всего, качественный уровень задачи, уровень соблюдения последовательности и заданной связности элементов декомпозиции, упрощения возможны и необходимы).

Главным выводом на этом отрезке исследования будет вывод о том, что функция рисования зависит лишь от ориентации 3D объекта в пространстве относительно плоскости экрана. Вообще говоря, подобный результат характерен скорее для недизайнерских графических систем, когда основная задача  заключается в соблюдении, прежде всего, точности расчета положение объекта в пространстве, а также точности отображения объекта на экране.

Вернемся к изучению первого вопроса. Рассмотрим последовательность операций пунктов 2 и 3 и получаемые результаты. Последствием выполнения 2-ого пункта получаем проекцию 3D прямоугольника в виде параллелограмма, имеющего цвет , т. е. прозрачный внутри. Таким образом образуется изображение реберной модели. В соответствии с описанием 3-его пункта можно определить действие , связанное с отображением непрозрачных областей  требуемым цветом. Конечный результат запишем в виде:

.

Остается оценить лишь возможность существования взаимосвязи между аргументами функций  и  -  и .

Как известно из физической теории света и из существующих примеров реализации подобных алгоритмов, свет (и цвет) рассчитываются исходя из фактора расположения объекта от присутствующих в системе одного или нескольких световых источников, их удаленности от объекта и интенсивности светового потока. То есть,

, где С- интегральная характеристика, объединяющая в себе основные свойства системы (объект плюс источник света) и характеризующая цветовое качество 3D объекта на экране дисплея.

Полученный нами вывод о существовании «жесткой» связи между координатами объекта и его цветовым изображением может быть иллюстрирован следующим функционалом:

.

Теперь уместно оформить данный результат в терминах задачи ассоциации пунктов 2 и 3.

Итак, первоначальный вид рисунка 1, должен быть изменен на иной (рис.2).

 

Рис.2

Обратное направление стрелок между пунктами схемы 2 и 3, изображенное на рисунке 2, характеризует, во-первых, факт непосредственного рисования ребер объекта по существующим уже в пункте 2 координатам. Во-вторых, для реализации цветовых и световых эффектов, - теней, бленд, линз, искажений и прочих, - необходим возврат в пункт 2 для повторного использования массива координат. Это означает, что использование координат вершин 3D объекта произойдет повторно, а также, - необходимость временного хранения промежуточных результатов до завершения 3- его пункта схемы.

Далее, рассмотрим возможность реализации первоначальной схемы (рис. 1) в соответствии с набором и порядком исходной декомпозиции. Строить рассуждения удобнее всего из постулата (условия) абсолютной достижимости заданного результата. Итак, утверждается, что пункты 2 и 3 схемы реализуемы в порядке, указанном на рисунке 1. Тогда, в полученных выше результатах для функций  и , а именно, в зависимости алгоритмов  и  от координат расположения объекта визуализации, можно видеть одновременно независимость каждого из этих алгоритмов непосредственно друг от друга (рис. 3).

Рис. 3

 

Также, поскольку зависимость функций  и  от  единственна, то можно утверждать, что эти функции локально несвязанны. Последовательность выполнения алгоритмов  и  в порядке, указанном на рисунке 1, можно обосновать следующим образом.

Предполагая вынесение вычислительной части алгоритмов за рамки рассматриваемой здесь задачи, получим, что в пунктах 2 и 3 производятся лишь действия, связанные непосредственно с вызовом аппаратных средств для рисования элементов. Следовательно, исходя их предполагаемого результата (по рис. 1), мы ожидаем получить после выполнения пункта 2 (алгоритм ) 2D изображение каркаса 3D объекта. Затем, после выполнения пункта 3 (алгоритм ) получим «закрашенный» определенным образом силуэт объекта, при этом, граничная часть каркаса не будет «затерта», в то время как внутренняя область будет закрашена.

Мы получили вполне ожидаемые результаты, которые, однако, достаточно интересны с аналитической точки зрения.

Во-первых, производя действия в соответствии с первоначальной схемой, изображенной на рисунке 1, доказана независимость вычислительной части полного алгоритма функции RENDER, хотя при этом может быть значительно увеличено число обращений к базе данных, в связи с увеличением числа «проходов» для каждого из частных алгоритмов функции RENDER.

Во-вторых, обнаружена зависимость результирующего изображения от порядка исполнительных этапов.

 

Литература.

1.      Артамонов Е.И., Хачумов В.М. Синтез структур специализированных средств машинной графики. М., Институт проблем управления.-1991.

2.      Трофимов С.А., CASE-технологии в Rational Rose 2-е изд., Бином, 2002, 288 стр.